package com.powerbank.devicecenter.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 充电站实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("station")
public class Station {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 站点编号
     */
    @TableField("station_code")
    private String stationCode;

    /**
     * 站点名称
     */
    @TableField("station_name")
    private String stationName;

    /**
     * 站点类型：INDOOR-室内，OUTDOOR-室外
     */
    @TableField("station_type")
    private String stationType;

    /**
     * 站点状态：ACTIVE-正常，INACTIVE-停用，MAINTENANCE-维护
     */
    @TableField("status")
    private String status;

    /**
     * 位置经度
     */
    @TableField("longitude")
    private BigDecimal longitude;

    /**
     * 位置纬度
     */
    @TableField("latitude")
    private BigDecimal latitude;

    /**
     * 详细地址
     */
    @TableField("address")
    private String address;

    /**
     * 省份
     */
    @TableField("province")
    private String province;

    /**
     * 城市
     */
    @TableField("city")
    private String city;

    /**
     * 区域
     */
    @TableField("district")
    private String district;

    /**
     * 容量（最大设备数）
     */
    @TableField("capacity")
    private Integer capacity;

    /**
     * 可用设备数
     */
    @TableField("available_count")
    private Integer availableCount;

    /**
     * 占用设备数
     */
    @TableField("occupied_count")
    private Integer occupiedCount;

    /**
     * 故障设备数
     */
    @TableField("fault_count")
    private Integer faultCount;

    /**
     * 服务时间开始
     */
    @TableField("service_start_time")
    private String serviceStartTime;

    /**
     * 服务时间结束
     */
    @TableField("service_end_time")
    private String serviceEndTime;

    /**
     * 联系电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 负责人
     */
    @TableField("manager_name")
    private String managerName;

    /**
     * 负责人电话
     */
    @TableField("manager_phone")
    private String managerPhone;

    /**
     * 安装日期
     */
    @TableField("install_date")
    private LocalDateTime installDate;

    /**
     * 启用状态：1-启用，0-禁用
     */
    @TableField("enabled")
    private Integer enabled;

    /**
     * 累计服务次数
     */
    @TableField("total_service_count")
    private Integer totalServiceCount;

    /**
     * 评分
     */
    @TableField("rating")
    private BigDecimal rating;

    /**
     * 评价数量
     */
    @TableField("review_count")
    private Integer reviewCount;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 创建时间
     */
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /**
     * 是否删除：0-否，1-是
     */
    @TableLogic
    @TableField("deleted")
    private Integer deleted;
}